package com.neu.carbon.mes.domain;

import java.util.List;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.neu.common.annotation.Excel;
import com.neu.common.core.domain.BaseEntity;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * 作业装配对象 mes_product_job
 * 
 * @author neuedu
 * @date 2024-09-10
 */
@ApiModel("作业装配")
public class MesProductJob extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 编号 */
    @ApiModelProperty("编号")
    @Excel(name = "编号")
    private Long id;

    /** 作业名称 */
    @ApiModelProperty("作业名称")
    @Excel(name = "作业名称")
    private String name;

    /** 生产计划 */
    @ApiModelProperty("生产计划")
    @Excel(name = "生产计划")
    private Long planId;
    private String planName;

    /** 计划排产 */
    @ApiModelProperty("计划排产")
    @Excel(name = "计划排产")
    private Long scheduleId;

    public String getPlanName() {
        return planName;
    }

    public void setPlanName(String planName) {
        this.planName = planName;
    }

    public String getScheduleName() {
        return scheduleName;
    }

    public void setScheduleName(String scheduleName) {
        this.scheduleName = scheduleName;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    private String scheduleName;

    /** 产品 */
    @ApiModelProperty("产品")
    @Excel(name = "产品")
    private Long productId;
    private String productName;
    private String model;
    private String specification;
    private String unit;

    public String getModel() {
        return model;
    }

    public void setModel(String model) {
        this.model = model;
    }

    public String getSpecification() {
        return specification;
    }

    public void setSpecification(String specification) {
        this.specification = specification;
    }

    public String getUnit() {
        return unit;
    }

    public void setUnit(String unit) {
        this.unit = unit;
    }

    /** 开始时间 */
    @ApiModelProperty(value="开始时间",example = "2021-09-10")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startTime;

    /** 结束时间 */
    @ApiModelProperty(value="结束时间",example = "2021-09-10")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endTime;

    /** 生产数量 */
    @ApiModelProperty("生产数量")
    private Long productQuantity;

    /** 作业状态：0未执行1执行中2已完成3异常 */
    @ApiModelProperty("作业状态：0未执行1执行中2已完成3异常")
    @Excel(name = "作业状态：0未执行1执行中2已完成3异常")
    private String status;

    /** 生产作业物料信息 */
	@ApiModelProperty(hidden = true)
    private List<MesProductJobMaterial> mesProductJobMaterialList;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setName(String name) 
    {
        this.name = name;
    }

    public String getName() 
    {
        return name;
    }
    public void setPlanId(Long planId) 
    {
        this.planId = planId;
    }

    public Long getPlanId() 
    {
        return planId;
    }
    public void setScheduleId(Long scheduleId) 
    {
        this.scheduleId = scheduleId;
    }

    public Long getScheduleId() 
    {
        return scheduleId;
    }
    public void setProductId(Long productId) 
    {
        this.productId = productId;
    }

    public Long getProductId() 
    {
        return productId;
    }
    public void setStartTime(Date startTime) 
    {
        this.startTime = startTime;
    }

    public Date getStartTime() 
    {
        return startTime;
    }
    public void setEndTime(Date endTime) 
    {
        this.endTime = endTime;
    }

    public Date getEndTime() 
    {
        return endTime;
    }
    public void setProductQuantity(Long productQuantity) 
    {
        this.productQuantity = productQuantity;
    }

    public Long getProductQuantity() 
    {
        return productQuantity;
    }
    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    public List<MesProductJobMaterial> getMesProductJobMaterialList()
    {
        return mesProductJobMaterialList;
    }

    public void setMesProductJobMaterialList(List<MesProductJobMaterial> mesProductJobMaterialList)
    {
        this.mesProductJobMaterialList = mesProductJobMaterialList;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("name", getName())
            .append("planId", getPlanId())
            .append("scheduleId", getScheduleId())
            .append("productId", getProductId())
            .append("startTime", getStartTime())
            .append("endTime", getEndTime())
            .append("productQuantity", getProductQuantity())
            .append("status", getStatus())
            .append("remark", getRemark())
            .append("mesProductJobMaterialList", getMesProductJobMaterialList())
            .toString();
    }
}
